//*****************************************************************************
//
// flash_pb.h - Prototypes for the flash parameter block functions.
//
// Copyright (c) 2008-2009 Luminary Micro, Inc.  All rights reserved.
// Software License Agreement
// 
// Luminary Micro, Inc. (LMI) is supplying this software for use solely and
// exclusively on LMI's microcontroller products.
// 
// The software is owned by LMI and/or its suppliers, and is protected under
// applicable copyright laws.  All rights are reserved.  You may not combine
// this software with "viral" open-source software in order to form a larger
// program.  Any use in violation of the foregoing restrictions may subject
// the user to criminal sanctions under applicable laws, as well as to civil
// liability for the breach of the terms and conditions of this license.
// 
// THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
// LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
// CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
// 
// This is part of revision 4781 of the Stellaris Firmware Development Package.
//
//*****************************************************************************

#ifndef __FLASH_PB_H__
#define __FLASH_PB_H__

#define BACK_AREA_SIZE_K       2         // 2K bytes
#define ERASE_PAGE_SIZE        1024      // 1K page size
/*
  Flash area for parameter block is located at bottom of 64K 
*/

#define FLASH_START_ADDRESS    ((uint32_t)(0x08010000-(BACK_AREA_SIZE_K<<10))) 

//*****************************************************************************
//
// Prototype for the flash parameter block functions.
//
//*****************************************************************************
extern unsigned char *FlashPBGet(void);
extern void FlashPBSave(unsigned char *pucBuffer);
extern void FlashPBInit(unsigned long ulStart, unsigned long ulEnd,
                        unsigned long ulSize);
extern void FlashPB_Init(int PBSize);

#endif // __FLASH_PB_H__
